package com.swn.common.util;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
/**
 * 继承PropertyPlaceholderConfigurer支持密文属性的属性配置器
 * 
 * @author taozhaocai
 * @Date 2016年6月16日  下午6:52:07
 * @Note <这里是该类的使用注意事项>

 */
public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
private String[] encryptPropNames = { "username", "password" };
 
    @Override
    protected String convertProperty(String propertyName, String propertyValue) {
    	
    	
        if (isEncryptProp(propertyName)) {
            String decryptValue = Base64Util.getFromBase64(propertyValue);
            return decryptValue;
        } else {
            return propertyValue;
        }
    }
 
    /**
     * 判断是否是加密的属性
     * 
     * @param propertyName
     * @return
     */
    private boolean isEncryptProp(String propertyName) {
        for (String encryptpropertyName : encryptPropNames) {
            if (encryptpropertyName.equals(propertyName))
                return true;
        }
        return false;
    }
}